﻿2026-08-21T12:28:54.8345204Z ##[group]Run bash .github/ci/reap-census-selftest.sh
2026-08-21T12:28:54.8345843Z [36;1mbash .github/ci/reap-census-selftest.sh[0m
2026-08-21T12:28:54.8361759Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
2026-08-21T12:28:54.8362087Z env:
2026-08-21T12:28:54.8362313Z   SPT_ATTACH_GATE_WATCHDOG_MS: 120000
2026-08-21T12:28:54.8362585Z   SPT_ATTACH_IPC_DEADLINE_MS: 30000
2026-08-21T12:28:54.8365882Z   HEAVY: (package(spt-daemon) & kind(test) & binary(/^(attach|brain_swap|broker|budget|conn_blackhole_lifecycle|controller_lease|daemon_e2e|daemon_lifecycle_real_brain|digest|dispatch|driven_by_selfheal|endpoint_lifecycle|endpoint_survival|exit_every_reap|handoff|idempotent|inject_control_wedge|input_ack_deadlock|mesh_recovery|net_worker_starve|redispatch|redispatch_stall|registry_lifecycle|render_lifecycle|resize_geometry_epoch|resize_presentation_barrier|restart_replay_lifetime|resume|shellchan|spawn_truth|transport_death_eof|two_origin_spanning|twohost)$/)) | (package(spt) & kind(test) & binary(/^(attach_wedge_e2e|bind_cwd_project_e2e|bind_honest_cross_perch_e2e|brain_respawn_rename|brain_split|brain_survive|daemon_refresh_e2e|dummy_harness_e2e|endpoint_teardown_authority_e2e|engine_room_bringup_e2e|er_brief_once_per_session_e2e|er_briefing_presentation_e2e|er_briefing_presented_e2e|er_sequestered_cwd_e2e|gateway_owner_shell_e2e|commune_two_cwd_e2e|job_escape_e2e|knock_approve_not_hostage_e2e|knock_mutual_cross_node_e2e|live_adapt_translation_swap_e2e|livehost_bootgate_e2e|multi_subnet_bringup_e2e|n1_pairing|oneliner_e2e|projindex_reader_e2e|projindex_writer_e2e|psyche_download_e2e|rc_attach_truth|resume_template_e2e|run_no_dup_session_e2e|wake_resume_bind_e2e)$/)) | (package(spt-term) & kind(test))
2026-08-21T12:28:54.8369522Z   RUSTFLAGS: -C link-arg=-fuse-ld=mold
2026-08-21T12:28:54.8369781Z ##[endgroup]
2026-08-21T12:28:54.8427662Z == membership is decided on the exe basename, not on comm ==
2026-08-21T12:28:54.8428110Z   ok   is_family translate_proof_fixture
2026-08-21T12:28:54.8428396Z   ok   is_family post_step_fixture
2026-08-21T12:28:54.8428696Z   ok   is_family dispatch_fixture
2026-08-21T12:28:54.8428998Z   ok   is_family spt
2026-08-21T12:28:54.8429276Z   ok   is_family owl
2026-08-21T12:28:54.8429515Z   ok   is_family notify-shell
2026-08-21T12:28:54.8429762Z   ok   is_family mock-session
2026-08-21T12:28:54.8430014Z   ok   is_family mock-shell
2026-08-21T12:28:54.8430263Z   ok   is_family gh_fixture
2026-08-21T12:28:54.8430529Z   ok   is_family git_fixture
2026-08-21T12:28:54.8430778Z   ok   NOT is_family spt-daemon
2026-08-21T12:28:54.8431259Z   ok   NOT is_family sp
2026-08-21T12:28:54.8431553Z   ok   NOT is_family notify
2026-08-21T12:28:54.8431783Z   ok   NOT is_family 
2026-08-21T12:28:54.8432083Z == the deleted-exe suffix comes off before membership is tested ==
2026-08-21T12:28:54.8439394Z   ok   exe_family_name strips the deleted suffix -> [mock-session]
2026-08-21T12:28:54.8447853Z   ok   exe_family_name strips it for the 23-char D2 name too -> [translate_proof_fixture]
2026-08-21T12:28:54.8455508Z   ok   exe_family_name is a no-op on a live path -> [spt]
2026-08-21T12:28:54.8459700Z   ok   strip_deleted leaves a scope-testable path -> [/ci/workspace/target/debug/spt]
2026-08-21T12:28:54.8468271Z   ok   is_family spt
2026-08-21T12:28:54.8472741Z   ok   in_scope /ci/workspace/target/debug/spt
2026-08-21T12:28:54.8481144Z   ok   exe_family_name does not maul a path containing 'deleted' -> [spt]
2026-08-21T12:28:54.8481587Z == comm fallback exists for VISIBILITY only, and is truncation-aware ==
2026-08-21T12:28:54.8481957Z   ok   comm_is_family translate_proof
2026-08-21T12:28:54.8482648Z   ok   comm_is_family post_step_fixtu
2026-08-21T12:28:54.8483202Z   ok   comm_is_family dispatch_fixtur
2026-08-21T12:28:54.8483454Z   ok   comm_is_family spt
2026-08-21T12:28:54.8484147Z   ok   NOT comm_is_family translate_proof_fixture
2026-08-21T12:28:54.8484650Z   ok   NOT comm_is_family bash
2026-08-21T12:28:54.8484903Z   ok   NOT comm_is_family 
2026-08-21T12:28:54.8485161Z == hard exclusions outrank the scope roots ==
2026-08-21T12:28:54.8485698Z   ok   is_excluded /ci/workspace/target/debug/spt-core/bin/spt
2026-08-21T12:28:54.8486022Z   ok   is_excluded /ci/workspace/target/debug/owl
2026-08-21T12:28:54.8486324Z   ok   is_excluded /home/x/.local/spt-core/bin/spt
2026-08-21T12:28:54.8486623Z   ok   is_excluded /home/reavus/.local/bin/spt
2026-08-21T12:28:54.8486907Z   ok   is_excluded /ci/workspace/.local/bin/spt
2026-08-21T12:28:54.8487226Z   ok   NOT is_excluded /ci/workspace/target/debug/spt
2026-08-21T12:28:54.8487555Z == scope: only this run's own build roots are eligible ==
2026-08-21T12:28:54.8487856Z   ok   in_scope /ci/workspace/target/debug/spt
2026-08-21T12:28:54.8488146Z   ok   in_scope /ci/cargo-target/debug/spt
2026-08-21T12:28:54.8488490Z   ok   in_scope /ci/workspace/.adapter-notify/target/debug/notify-shell
2026-08-21T12:28:54.8488838Z   ok   in_scope /ci/runner-temp/staged/spt
2026-08-21T12:28:54.8489466Z   ok   in_scope /ci/home/spt-n1-oldbroker/target/debug/spt
2026-08-21T12:28:54.8489917Z   ok   NOT in_scope /home/decid/.local/spt-core/bin/spt
2026-08-21T12:28:54.8490290Z   ok   NOT in_scope /some/other/checkout/target/debug/spt
2026-08-21T12:28:54.8490599Z   ok   NOT in_scope 
2026-08-21T12:28:54.8490885Z   ok   NOT in_scope /ci/workspace-other/target/debug/spt
2026-08-21T12:28:54.8491243Z == unreadable family paths refuse a clean survivor verdict ==
2026-08-21T12:28:54.8495182Z   ok   a fully readable empty census may report zero survivors -> [0]
2026-08-21T12:28:54.8500189Z   ok   an unreadable family path prevents zero from masquerading as proof -> [UNPROVEN]
2026-08-21T12:28:54.8505014Z   ok   unreadability outranks even a nonzero observed count -> [UNPROVEN]
2026-08-21T12:28:54.8505675Z == flood count is a single clean token ==
2026-08-21T12:28:54.8804880Z   ok   flood_count is a single token: [0]
2026-08-21T12:28:54.8805165Z 
2026-08-21T12:28:54.8805313Z reap-census selftest: OK
